790. Domino and Tromino Tiling - LeetCode Solution


Dynamic Programming

Python Code:

class Solution:
    def numTilings(self, n: int) -> int:
        md = 10**9 + 7
        dp = [0] * 10001
        dp[1] = 1
        dp[2] = 2
        dp[3] = 5
        if n<=3:
            return dp[n]
        for i in range(4, n+1, 1):
            dp[i] = 2*dp[i-1] + dp[i-3]
            dp[i]%=md
        return dp[n]


Comments

Submit
0 Comments
More Questions

MAXBRIDGE Maximise the bridges
WLDRPL Wildcard Replacement
1221. Split a String in Balanced Strings
1002. Find Common Characters
1602A - Two Subsequences
1555A - PizzaForces
1607B - Odd Grasshopper
1084A - The Fair Nut and Elevator
1440B - Sum of Medians
1032A - Kitchen Utensils
1501B - Napoleon Cake
1584B - Coloring Rectangles
1562B - Scenes From a Memory
1521A - Nastia and Nearly Good Numbers
208. Implement Trie
1605B - Reverse Sort
1607C - Minimum Extraction
1604B - XOR Specia-LIS-t
1606B - Update Files
1598B - Groups
1602B - Divine Array
1594B - Special Numbers
1614A - Divan and a Store
2085. Count Common Words With One Occurrence
2089. Find Target Indices After Sorting Array
2090. K Radius Subarray Averages
2091. Removing Minimum and Maximum From Array
6. Zigzag Conversion
1612B - Special Permutation
1481. Least Number of Unique Integers after K Removals